package com.rentcars.service;

import com.github.pagehelper.PageInfo;
import com.rentcars.entity.Account;

/**
 * 类描述：
 *
 * @author 张吉哲
 * @date 2021/3/1 14:06
 */
public interface AccountService {

  /**
   * 查询用户并分页
   *
   * @param account  查询条件
   * @param curr     当前页
   * @param pageSize 每页显示条数
   * @return 分页后结果集
   */
  PageInfo<Account> selectAllAccount(Account account, Integer curr,
      Integer pageSize);

  Boolean insertAccount(Account account);

  /**
   * 批量删除用户
   *
   * @param checkUid 被删除用户的id
   * @return 是否成功
   */
  Boolean deleteAccountsByUids(String[] checkUid);

  /**
   * 通过主键查询用户信息
   *
   * @param uid 用户主键
   * @return 用户信息
   */
  Account selectAccountByPrimaryKey(String uid);

  /**
   * 修改用户信息
   *
   * @param account 修改后信息
   * @return 是否成功
   */
  Boolean updateAccountByPrimaryKey(Account account);

  /**
   * 查询用户名是否存在
   *
   * @param username 用户名
   * @param uid
   * @return 存在返回false，不存在返回true
   */
  Boolean selectAccountByUsername(String username, String uid);

  /**
   * 根据id删除用户
   *
   * @param uid 用户id
   * @return 是否成功
   */
  Boolean deleteAccountsByUid(String uid);

  /**
   * 修改账户状态禁用/启用
   *
   * @param uid 用户id
   * @return 是否成功
   */
  Boolean updateAccountStateByUid(String uid, Integer userstate);

  /**
   * 获取用户信息和具体角色信息
   *
   * @param username 用户名
   * @return 用户信息
   */
  Account selectAccountRole(String username);

  /**
   * 通过用户名查询用户盐值
   *
   * @param username 用户名
   * @return 盐值
   */
  String selectPwdSaltByUsername(String username);


}
